load("@rules_cc//cc:cc_library.bzl", "cc_library")

cc_library(
    name = "boost.coroutine2",
    hdrs = [
        "include/boost/coroutine2/all.hpp",
        "include/boost/coroutine2/coroutine.hpp",
        "include/boost/coroutine2/detail/config.hpp",
        "include/boost/coroutine2/detail/coroutine.hpp",
        "include/boost/coroutine2/detail/decay_copy.hpp",
        "include/boost/coroutine2/detail/disable_overload.hpp",
        "include/boost/coroutine2/detail/push_coroutine.hpp",
        "include/boost/coroutine2/detail/state.hpp",
        "include/boost/coroutine2/detail/wrap.hpp",
        "include/boost/coroutine2/pooled_fixedsize_stack.hpp",
        "include/boost/coroutine2/protected_fixedsize_stack.hpp",
        "include/boost/coroutine2/segmented_stack.hpp",
    ],
    features = ["parse_headers"],
    includes = ["include"],
    textual_hdrs = [
        "include/boost/coroutine2/fixedsize_stack.hpp",
        "include/boost/coroutine2/detail/create_control_block.ipp",
        "include/boost/coroutine2/detail/pull_control_block_cc.hpp",
        "include/boost/coroutine2/detail/pull_control_block_cc.ipp",
        "include/boost/coroutine2/detail/pull_coroutine.hpp",
        "include/boost/coroutine2/detail/pull_coroutine.ipp",
        "include/boost/coroutine2/detail/push_control_block_cc.hpp",
        "include/boost/coroutine2/detail/push_control_block_cc.ipp",
        "include/boost/coroutine2/detail/push_coroutine.ipp",
    ],
    visibility = ["//visibility:public"],
    deps = [
        "@boost.assert",
        "@boost.config",
        "@boost.context",
    ],
)
